#ifndef __STAFFSERVER_H__
#define __STAFFSERVER_H__
// TCP网络编程之服务器
#include <stdio.h>
#include <stdlib.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <string.h>
#include <pthread.h>
#include <sqlite3.h>
#include <time.h>
#define STAFFDB "staff.db"
#define HISTOR "Historicalrecords"
#define EMPLOYEE "employeetable"
#define N 128
#define S 32
#define ERRLOG(errmsg)                                      \
  do                                                        \
  {                                                         \
    printf("%s - %s - %d\n", __FILE__, __func__, __LINE__); \
    exit(1);                                                \
  } while (0)
//定义一个结构体用于给线程处理函数传参
typedef struct
{
  int acceptfd;
  struct sockaddr_in clientaddr;
  sqlite3 *db;
} MSG;
//封装数据包结构体
typedef struct Data
{
  int flat;
  char name[S];
  int age;
  char gender[S];
  char password[S];
  int id;
  int wages;
  char department[S];
  char quit[N];
  char information[N];
  int flats;
} DATA;
//管理员登录函数
void do_Administrators_sign_in(DATA data, MSG msg);
//用户注册函数
void do_Staff_register(DATA data, MSG msg);
//用户登录函数
void do_Staff_sign_in(DATA data, MSG msg);
//管理员添加用户
void do_Administrators_add_to(DATA data, MSG msg);
//按工号删除管理员删除用户
void do_Administrators_delete_id(DATA data, MSG msg);
//管理员删除用户按姓名删除
void do_Administrators_delete_name(DATA data, MSG msg);
//管理员修改用户
void do_Administrators_modify(DATA data, MSG msg);
//管理员查询用户
void do_Administrators_query(DATA data, MSG msg);
//管理员查询历史记录
void do_Administrators_Historical_records(DATA data, MSG msg);
//用户查询信息
void do_Staff_query(DATA data, MSG msg);
//用户修改密码
void do_Staff_modify(DATA data, MSG msg);
//用户修改个人信息
void do_Staff_modify_personal(DATA data, MSG msg);
//用户查询历史记录
void do_Staff__Historical_records(DATA data, MSG msg);
//查询所有人信息
void do_Check_all(DATA data, MSG msg);
//查询前十人信息
void do_Check_front(DATA data, MSG msg);
//查询后十人信息
void do_Check_after(DATA data, MSG mssg);
//条件查询查询
void do_Check_condition(DATA data, MSG msg);
//所有消息
void do_All_messages(DATA data, MSG msg);
//前十条消息
void do_front_50_messages(DATA data, MSG msg);
//按条件查找消息
void do_condition_messages(DATA data, MSG msg);
//查询回调函数
int callbackQuery_all(void *arg, int ncolumn, char **text, char **name);
//查询最大的id
int callbackQuery_max(void *arg, int ncolumn, char **text, char **name);
//查询密码
int callbackQuery_password(void *arg, int ncolumn, char **text, char **name);
//查询id
int callbackQuery_id(void *arg, int ncolumn, char **text, char **name);

#endif